package com.bdzl.flow.service;

import com.bdzl.pub.entity.flow.ActNodeDO;
import com.bdzl.pub.entity.sys.UserDO;
import com.bdzl.pub.vo.biz.CheckVO;
import com.bdzl.pub.vo.flow.ActNodeVO;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 * 工作流节点信息表
 *
 * @author yangyicai
 * @email yangyicai@foxmail.com
 * @date 2021-05-12 10:14:58
 */
public interface ActNodeService {

	ActNodeDO get(Integer nodeId);

	List<ActNodeVO> list(Map<String, Object> map);

	int count(Map<String, Object> map);

	int save(ActNodeVO actNode);

	int update(ActNodeVO actNode);

	int remove(Integer nodeId);

	int batchRemove(Integer[] nodeIds);
	/**
	* @Description: TODO 根据id查询工作流程
	* @param nodeId id
	* @return: com.bdzl.pub.vo.flow.ActNodeVO
	* @Author: Ming
	* @Date: 2021/5/13 14:15
	*/
	ActNodeVO getProcess(Integer nodeId);
	/**
	 * @Description: TODO 查询所有节点数据
	 * @param nodeActKey 所属工作流模型
	 * @return: com.bdzl.pub.util.param.PageUtils
	 * @Author: Ming
	 * @Date: 2021/5/18 14:29
	 */
	List<ActNodeVO> getNode(String nodeActKey);
	/**
	 * @Description: TODO 根据当前节点获取下一节点数据
	 * @param annNodeNow 当前节点编号
	 * @return: java.lang.String
	 * @Author: Ming
	 * @Date: 2021/5/18 16:15
	 */
	ActNodeVO getNextNodeByNow(Integer annNodeNow, String annFormula);
	/**
	 * @Description: TODO 根据订单号查询审核通过，驳回数据节点
	 * @param acrOdr 订单号
	 * @return: com.bdzl.pub.util.param.R
	 * @Author: Ming
	 * @Date: 2021/5/18 17:38
	 */
	CheckVO getNodeByacrOdr(String acrOdr);

	/**
	 * @Description: TODO 根据订单状态的值查询下一步节点数据
	 * @param statVal 订单状态
	 * @return: com.bdzl.pub.util.param.R
	 * @Author: Ming
	 * @Date: 2021/5/18 17:38
	 */
	List<ActNodeVO> getOdrStatusByStatVal( String statVal);

	/**
	 * @Description: TODO 获取当前登录用户数据
	 * @param request
	 * @return: com.bdzl.pub.entity.sys.UserDO
	 * @Author: Ming
	 * @Date: 2021/5/20 15:36
	 */
	UserDO getUserInfo(HttpServletRequest request);
}
